package com.spoto.oa.dao;

import java.sql.SQLException;
import java.util.List;

import com.spoto.oa.model.Customer;

/**
 * 
 * @Project: OA
 * @Description: 客户表的DAO
 * @Author: LinYiSong
 * @Vesion: 
 * @Date: 2010-10-24~2010-10-24
 */
public interface CustomerDAO {

	/**
	 * 存客户
	 * @param customer
	 * @throws SQLException 
	 */
	public void save(Customer customer) throws SQLException;

	/**
	 * 取得所有的客户信息
	 * @return
	 */
	public List<Customer> getAll();

	/**
	 * 根据客户姓名取得客户对应客户信息
	 * @param name
	 * @return
	 */
	public Customer getByName(String name);
	/**
	 * 修改客户信息
	 * @param customer
	 */
	public void update(Customer customer);
	/**
	 * 根据客户名称删除客户信息
	 * @param name
	 */
	public void deleteByName(String name);

	/**
	 * 根据客户名称模糊搜索
	 * @param infor
	 * @return
	 */
	public List<Customer> getAllByName(String name);

	/**
	 * 根据公司名称模糊搜索
	 * @param infor
	 * @return
	 */
	public List<Customer> getAllByCompany(String company);
	/**
	 * 根据重要程度模糊搜索
	 * @param infor
	 * @return
	 */
	public List<Customer> getAllByLevel(int level);
	/**
	 * 根据手机号码模糊搜索
	 * @param parseInt
	 * @return
	 */
	public List<Customer> getAllByMobile(int mobile);
	/**
	 * 发生导入数据冲突时往冲突表中添加冲突客户记录
	 * @param customer
	 */
	public void saveConflict(Customer customer);
	/**
	 * 根据冲突名取得冲突数据
	 * @param name
	 * @return
	 */
	public Customer getByNameConfict(String name);
	
	/**
	 * 根据冲突名删除冲突数据
	 * @param customer
	 */
	public void deleteConfictByName(String name);
	/**
	 * 取得所有的冲突数据
	 * @return
	 */
	public List<Customer> getAllConfict();

}
